package com.zjl.redis.第06章_SpringBoot整合redis;

/**
 * 如果用 RedisTemplate 继续连，
 * 假如 redis 都某一台主挂了，从上位，java访问超时，
 * 因为，java 没用动态感知redis的状态改变，
 * SpringBoot 2.X版本，
 *      Redis默认的连接池采用Lettuce
 *      当Redis集群节点发生变化后，Lettuce 默认是不会刷新节点拓扑
 * 解决方案1： 不推荐
 *      让 RedisTemplate 使用 jedis 底层，将
 *                  <groupId>org.springframework.boot</groupId>
 *             <artifactId>spring-boot-starter-data-redis</artifactId>
 *             将
 *             <groupId>io.lettuce</groupId>-->
 *              <artifactId>lettuce-core</artifactId>-->
 *              这个包排除，使用 jedis
 * 解决方案2：
 *      重写连接工厂实例(极度不推荐)  你厉害也行
 * 解决方案3： 官网推荐
 *      刷新节点集群拓扑动态感应
 *      配置文件
 *      SpringBoot 2.X版本，
 *      #支持集群拓扑动态感应刷新,自适应拓扑刷新是否使用所有可用的更新，默认false关闭
 *       spring.redis.lettuce.cluster.refresh.adaptive=true
 *       #定时刷新  2000毫秒一刷新  及2秒一刷新
 *       spring.redis.lettuce.cluster.refresh.period=2000
 *
 *       SpringBoot 3.X版本，
 *       #支持集群拓扑动态感应刷新,自适应拓扑刷新是否使用所有可用的更新，默认false关闭
 *      spring.data.redis.lettuce.cluster.refresh.adaptive=true
 *      #定时刷新  2000毫秒一刷新  及2秒一刷新
 *      spring.data.redis.lettuce.cluster.refresh.period=2000
 */
public class E_集群连接 {
}
